

#ifndef _Oz_Webui_Webui_H_
#define _Oz_Webui_Webui_H_

#include <string>
#include <boost/shared_ptr.hpp>
#include <vector>
#include <Oz/IHttp.h>

namespace Oz{
    namespace Webui{

        class ITemplate;
        typedef boost::shared_ptr<ITemplate> ITemplatePtr;
        typedef std::vector<ITemplatePtr> ITemplateSeq;

        class IDictionary;
        typedef boost::shared_ptr<IDictionary> IDictionaryPtr;
        typedef std::vector<IDictionaryPtr> IDictionarySeq;

        class ICacheable;
        typedef boost::shared_ptr<ICacheable> ICacheablePtr;
        typedef std::vector<ICacheablePtr> ICacheableSeq;

        class IAbstractSession;
        typedef boost::shared_ptr<IAbstractSession> IAbstractSessionPtr;
        typedef std::vector<IAbstractSessionPtr> IAbstractSessionSeq;

        class IAbstractApplication;
        typedef boost::shared_ptr<IAbstractApplication> IAbstractApplicationPtr;
        typedef std::vector<IAbstractApplicationPtr> IAbstractApplicationSeq;

        class IAbstractUrlAdapter;
        typedef boost::shared_ptr<IAbstractUrlAdapter> IAbstractUrlAdapterPtr;
        typedef std::vector<IAbstractUrlAdapterPtr> IAbstractUrlAdapterSeq;

        class IAbstractView;
        typedef boost::shared_ptr<IAbstractView> IAbstractViewPtr;
        typedef std::vector<IAbstractViewPtr> IAbstractViewSeq;
        typedef std::map<std::string,IAbstractViewPtr> IAbstractViewMap;

        class IError;
        typedef boost::shared_ptr<IError> IErrorPtr;
        typedef std::vector<IErrorPtr> IErrorSeq;
    }
}
#endif
